/**
 * 
 */
package com.cr.backbone.util;

import java.lang.reflect.Method;

/**
 * 工具类：根据对象属性名称，反射获取属性对应 get方法，并返回get方法值
 * @author huxh
 *
 */
public class UtilsMethodReflectingValues {

	public static Object getValue(Object obj, String methodName){
		try{
			if(methodName.indexOf(".")>-1){
				String m1 = methodName.substring(0,methodName.indexOf("."));
				String m2 = methodName.substring(methodName.indexOf(".")+1);
				if(m1!=null && !m1.trim().equals("")){
					Method m = obj.getClass().getMethod("get"+String.valueOf(m1.charAt(0)).toUpperCase()+m1.substring(1));
					Object o = m.invoke(obj);
					return getValue(o,m2);
				}else{
					return obj;
				}
			}else{
				if(methodName!=null && !methodName.trim().equals("")){
					Method m = obj.getClass().getMethod("get"+String.valueOf(methodName.charAt(0)).toUpperCase()+methodName.substring(1));
					Object o = m.invoke(obj);
					return o;
				}else{
					return obj;
				}
			}
		} catch (Exception e) {
			//e.printStackTrace();
			return null;
		}
	}
	
}
 